package com.sinn.gitrepobranchcompare;

import com.sinn.gitrepobranchcompare.application.GitOperation;
import com.sinn.gitrepobranchcompare.config.ConfigLoader;
import com.sinn.gitrepobranchcompare.config.GitRepoScanConfig;
import com.sun.net.httpserver.HttpServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.io.File;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.Properties;

public class GitRepoBranchCompareApplication {

    public static void main(String[] args) {

        // 获取当前工作目录
        // 加载配置文件
        Properties config;
        try {
             config = ConfigLoader.loadConfig();
             GitRepoScanConfig.setConfig(config);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        // 读取 processType 系统属性
        String processType = System.getProperty("processType");
        if (processType == null) {
            System.err.println("未指定 -DprocessType 参数，请指定 all/compare/showhtml 其中之一。");
            return;
        }

        GitOperation operation = new GitOperation();

        switch (processType) {
            case "all":
                // 执行 all 类型的处理逻辑
                operation.pull();
                operation.changeGitIndex();
                operation.generateGitChangeReport();
                operation.generateHTML();
                break;
            case "compare":
                // 执行 compare 类型的处理逻辑
                operation.pull();
                operation.changeGitIndex();
                operation.generateGitChangeReport();
                break;
            case "showhtml":
                operation.generateHTML();
                break;
            default:
                System.err.println("无效的 processType 参数值，请指定 all/compare/showhtml 其中之一。");
        }
    }

}
